The Scalable Video Coding (SVC) amendment to the H.264 recommendation (H.264 SVC) of ITU-T describes a scalable video stream decoder which is used to decode a subset of a bit stream in order to adapt it to the various needs or preferences of end users as well as to varying terminal capabilities or network conditions.
The SVC bit stream includes different layers of encoded video. Each layer includes a large number of images, and each image includes multiple slices that in turn are partitioned to macroblocks. The base layer is referred to as a first layer and is a valid H.264 AVC video stream. Additional layers are referred to as enhancement layer and provide higher quality or resolution levels or higher frame rates. Allowable sizes of a macroblock are defined in the H.264 SVC. For example, a macroblock may include 16×16 Luma samples and 16×8 Chroma samples. Such a macroblock is encoded to provide AN encoded macroblock.
The decoding process includes multiple stages. It may include receiving a bit stream, performing entropy decoding, up-sampling and de-blocking, as well as other operations. The entropy decoding may include generating transform coefficients and then using the transform coefficients to reconstruct images. These transform coefficients are also referred to as residuals because they represent a difference between currently decoded information and previously decoded information.
For example, the encoded macroblock is decoded to provide a macroblock. During the decoding process an encoded macroblock is converted (during an encoding process) to 16×16 Luma transform coefficients and 16×8 Chroma coefficients, arranged in 4×4 Luma transform coefficient groups and 4×2 Chroma transform coefficient groups. Each of these transform coefficient groups has its own motion vector (not shown). Each transform coefficient may be 2 bytes long.
The decoding process of a scalable video includes a large number of accesses to a memory unit, as the amount of information per each video image may exceed 2 Mega Bits.
These accesses are time and resource consuming, especially when the information is stored in a memory unit that is not an integral part of the decoder integrated circuit.